//
//  UICollectionViewCellModelProtocol.swift
//  iPhone
//
//  Created by Toj on 5/24/23.
//

import UIKit

protocol UICollectionViewCellModelProtocol {
    
    /// 注册类
    static var registerCell: UICollectionViewCell.Type { get }
    
    // 即将显示的大小
    var willShowCellSize: CGSize { get }
    /// cellSize 大小
    var cellSize: CGSize { get }
    
    /// 重置cellSize大小
    func resetCellSize()
    
    /// 重置cellSize大小
    func resetCellSize(_ size: CGSize)
    
    /// 更新cellSize大小
    func setupCellSize()
    
    /// 更新cellSize大小
    func setupCellSize(_ size: CGSize)
    
    /// cell 即将消失
    func cellDidDisappear()
}

extension UICollectionViewCellModelProtocol {
    
    /// 复用类
    var dequeueReusableCell: UICollectionViewCell.Type {
        return Self.registerCell
    }
    
    var willShowCellSize: CGSize { return .def_cipher }
    /// cellSize 大小
    var cellSize: CGSize { return .def_cipher }
    /// 重置cellSize大小
    func resetCellSize() { }
    /// 重置cellSize大小
    func resetCellSize(_ size: CGSize) { }
    
    /// 更新cellSize大小
    func setupCellSize() { }
    
    /// 更新cellSize大小
    func setupCellSize(_ size: CGSize) { }
    
    func cellDidDisappear() { }
}
